perm filename SORTXY.SAI[GEO,BGB] blob sn#083867 filedate 1974-01-25 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	BEGIN "SORTXY"
C00004 ENDMK
C⊗;
BEGIN "SORTXY"
	REQUIRE "ABBREV[SYS,BGB]" SOURCE_FILE;
	REQUIRE "RANDOM[SYS,BGB]" LOAD_MODULE;
	EXTERNAL REAL PROCEDURE RANDOM;
	REQUIRE "DPYIII[SYS,BGB]" SOURCE_FILE;
	SAFE INTEGER ARRAY DPYBUF[0:1000];
	SAFE REAL ARRAY X,Y[1:100];
	SAFE REAL ARRAY Z[1:40,1:40];
	ITG I,J,K;
	REAL MIN;

α DISPLAY WINDOW;
WHILE TRUE DO BEGIN
	DPYSET(DPYBUF);	AIVECT(-400,-400);
	AVECT(+400,-400);AVECT(+400,+400);
	AVECT(-400,+400);AVECT(-400,-400);

	FOR I←1 STEP 1 UNTIL 40 DO
	⊂ X[I]←800*RANDOM-400; Y[I]←800*RANDOM-400;
	  AIVECT(X[I],Y[I]);DPYSST("⊗"); ⊃;

	FOR I←1 STEP 1 UNTIL 39 DO
	FOR J←I+1 STEP 1 UNTIL 40 DO
	Z[I,J]←Z[J,I]←(X[I]-X[J])↑2+(Y[I]-Y[J])↑2;
	
	FOR I←1 STEP 1 UNTIL 40 DO
	BEGIN
		MIN ← 999999;
		AIVECT(X[I],Y[I]);
		FOR J←1 STEP 1 UNTIL 40 DO
		IF J≠I ∧ Z[I,J]<MIN THEN ⊂ MIN←Z[I,J];K←J;⊃;
		AVECT(X[K],Y[K]);
	END;
	DPYOUT(1);
END;	WHILE TRUE DO INCHRW;
END "SORTXY";